package org.adream.account.service;

import java.util.Date;

import org.adream.account.dao.OAuthMemoryDao;
import org.adream.account.entity.OAuthMemoryEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 操作 登录用到的那张 缓存表
 * 
 * @author chenhaoyu
 *
 */
@Service
public class MemoryTokenService {

	@Autowired
	private OAuthMemoryDao oauthMemoryDao;

	/**
	 * 根据uid查询
	 * @param uid
	 * @return
	 */
	public OAuthMemoryEntity queryOAuthMemoryByUid(String uid) {
		return oauthMemoryDao.queryOAuthMemoryByUid(uid);
	}

	/**
	 * 根据登录方式查询
	 * @param login
	 * @return
	 */
	public OAuthMemoryEntity queryOAuthMemoryByUname(String login) {
		return oauthMemoryDao.queryOAuthMemoryByLogin(login);
	}

	/**
	 * 根据token查询
	 * @param token
	 * @return
	 */
	public OAuthMemoryEntity queryOAuthMemoryByToken(String token) {
		return oauthMemoryDao.queryOAuthMemoryByToken(token);
	}
	
	/**
	 * replace into
	 * @param uid	user id
	 * @param login	登录方式
	 * @param token
	 * @param sec	秒数
	 */
	public void replaceIntoOAuthMemory(String uid, String login, String token, int sec) {
		OAuthMemoryEntity oAuthMemory = new OAuthMemoryEntity();
		Date date = new Date();
		date.setTime(date.getTime() + sec);// token有效时间
		oAuthMemory.setLogin(login);
		oAuthMemory.setToken(token);
		oAuthMemory.setUid(uid);
		oAuthMemory.setExpire(date);
		oauthMemoryDao.replaceIntoOAuthMemory(oAuthMemory);
	}
}